package com.resou.reader.bookdetail.comment.detail;

import android.content.Context;

import com.resou.reader.api.entry.CommentBean;
import com.resou.reader.base.BasePresenter;
import com.resou.reader.base.BaseView;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;

/**
 * Author: 萤火虫
 * E-mail:  Allensuns@163.com
 * Description:
 * CreateTime: 2019-04 -11
 **/
public interface ICommentDetailContract {
    interface ICommentDetailView extends BaseView {
        void showCommentDetail(CommentBean commentBean);

        String getTextDes();

        SmartRefreshLayout getSmartRefreshLayout();

        Context getContext();

        /**
         * 发送评论成功
         */
        void sendCommentSuccess();

        /**
         * 发送评论失败
         */
        void sendCommentFail();

        /**
         * 喜欢成功
         */
        void likePariseSuccess();

        /***
         * 举报成的回调
         */
        void reportSuccess();

        /**
         * 删除评论成功
         *
         * @param state 0表示书评 删除 ，1书评子回复删除
         */
        void deleteCommentSuccess(int state);
    }

    interface ICommentDetailPresenter extends BasePresenter {
        void quearCommentDetail(String id, int page);

        /**
         * 添加评论
         *
         * @param content             内容
         * @param novelId             书籍id
         * @param bookReviewCommentId 评论id   如果是评论的回复需要传该字段
         * @param level               星级 1-5
         */
        void sendComment(String content, String novelId, String bookReviewCommentId, int level);

        /**
         * @param type   1-催更 辱骂作者及他人 2-广告及垃圾信息 3-色情 污秽内容 4-激进时政 敏感信息
         * @param beId   被举报的id
         * @param beType 1-书籍id 4-短评id 5-短评的回复的id
         */
        void reportComment(int type, String beId, String beType);

        /**
         * 喜欢接口调用
         *
         * @param commentId
         */
        void remoteLikeParise(int commentId);

        /**
         * 删除评论
         *
         * @param state     状态 0书评删除 1书评回复删除
         * @param commentId 评论id
         */

        void deleteComment(int state, String commentId);


    }
}
